/* global Cesium */
import './Scene/Camera';
import './DynamicMaterial/MaterialExpand';

import DrawHelper from './DrawHelper/DrawHelper';
import GroundCirclePrimitive from './DrawHelper/GroundCirclePrimitive';
import GroundEllipsePrimitive from './DrawHelper/GroundEllipsePrimitive';
import GroundPolygonPrimitive from './DrawHelper/GroundPolygonPrimitive';
import GroundPolylinePrimitive from './DrawHelper/GroundPolylinePrimitive';
import GroundRectanglePrimitive from './DrawHelper/GroundRectanglePrimitive';
import Marker from './DrawHelper/Marker';
import MeasureArea from './DrawHelper/MeasureArea';
import MeasureDistance from './DrawHelper/MeasureDistance';
import TextAnnotation from './DrawHelper/TextAnnotation';
import layerGroupHandle from './DrawHelper/layerGroupHandle';
import carToDegrees from './Core/carToDegrees';
import fullScreen from './Core/fullScreen';
import check from './Core/check';
import changeSceneMode from './Core/changeSceneMode';
import getPickPosition from './Core/getPickPosition';
import SatelliteManager from './Satellite/SatelliteManager';
import DoubleSceneCompare from './Components/DoubleSceneCompare';
import WebMapTileServiceImageryProvider from './Scene/WebMapTileServiceImageryProvider';
import dayjs from './ThirdParty/dayjs.min';
import NavigationMixin from './Widgets/Navigation/viewerCesiumNavigationMixin';
import TargetLayer from './TargetSituation/TargetLayer';
import TargetItem from './TargetSituation/TargetItem';
import DynamicRippleMaterialProperty from './DynamicMaterial/DynamicRippleMaterialProperty';

export default {
    install() {
        if (typeof Cesium === 'undefined') {
            window.Cesium = {};
        }
        Cesium['C_DrawHelper'] = DrawHelper;
        Cesium['C_GroundCirclePrimitive'] = GroundCirclePrimitive;
        Cesium['C_GroundEllipsePrimitive'] = GroundEllipsePrimitive;
        Cesium['C_GroundPolygonPrimitive'] = GroundPolygonPrimitive;
        Cesium['C_GroundPolylinePrimitive'] = GroundPolylinePrimitive;
        Cesium['C_GroundRectanglePrimitive'] = GroundRectanglePrimitive;
        Cesium['C_Marker'] = Marker;
        Cesium['C_MeasureArea'] = MeasureArea;
        Cesium['C_MeasureDistance'] = MeasureDistance;
        Cesium['C_TextAnnotation'] = TextAnnotation;
        Cesium['C_layerGroupHandle'] = layerGroupHandle;
        Cesium['C_carToDegrees'] = carToDegrees;
        Cesium['C_fullScreen'] = fullScreen;
        Cesium['C_check'] = check;
        Cesium['C_changeSceneMode'] = changeSceneMode;
        Cesium['C_SatelliteManager'] = SatelliteManager;
        Cesium['C_DoubleSceneCompare'] = DoubleSceneCompare;
        Cesium['C_getPickPosition'] = getPickPosition;
        Cesium['C_WebMapTileServiceImageryProvider'] = WebMapTileServiceImageryProvider;
        Cesium['C_dayjs'] = dayjs;
        Cesium['C_NavigationMixin'] = NavigationMixin;
        Cesium['C_TargetLayer'] = TargetLayer;
        Cesium['C_TargetItem'] = TargetItem;
        Cesium['C_DynamicRippleMaterialProperty'] = DynamicRippleMaterialProperty;
    },
};
